#ifndef SPL_LABEL
#define SPL_LABEL

class DLLEXPORT Label : public Controls::Control {
private:
    Gdip::Font*         font;
    Gdip::StringFormat* format;
    COLORREF            foreColor;

protected:
    VOID                onControlPaint(Controls::ControlPaintEvent& iEvent);

public:
    SPLINL Gdip::Font*              getFont() {
        return font;
    }
    SPLINL VOID                     setFont(Gdip::Font* value) {
        font = value;
    }

    SPLINL Gdip::StringAlignment    getAlignX() {
        return format->GetAlignment();
    }
    SPLINL VOID                     setAlignX(Gdip::StringAlignment value) {
        format->SetAlignment(value);
    }

    SPLINL Gdip::StringAlignment    getAlignY() {
        return format->GetLineAlignment();
    }
    SPLINL VOID                     setAlignY(Gdip::StringAlignment value) {
        format->SetLineAlignment(value);
    }

    SPLINL Gdip::StringTrimming     getTrimming() {
        return format->GetTrimming();
    }
    SPLINL VOID                     setTrimming(Gdip::StringTrimming value) {
        format->SetTrimming(value);
    }

    SPLINL COLORREF                 getForeColor() {
        return foreColor;
    }
    SPLINL VOID                     setForeColor(COLORREF value) {
        foreColor = value;
    }

    Label();
    SPLINL virtual ~Label() {
        delete format;
    }
};

#endif